Active Sentiment Domain Adaptation

Introduction

本文提出的一个active sentiment domain adaptation方法来解决negative transfer的问题。利用的是general sentiment information和少量的从target domain中的actively selected labeled samples。general sentiment information是从sentiment lexicons中提取出来的,并且根据目标域内的词之间的情感相似度进行调整。general sentiment information可以看作一个需要transfer的background domain。词的相似度则是从目标域的未标注样例中根据句法规则和共现模式来提取的。

Related Work

Sentiment Domain Adaptation

在相关工作方面,本文提出了已有的方法在source domain和target domain的情感特征的分布存在明显差别的时候,可能存在迁移学习的方法的准确性还要低于未使用迁移学习的方法,这个现象叫做negative transfer。Choi和Cardie(2009)也曾提出了一种为特定域调整sentiment lexicon的方法,这个方法通过利用两种关系:

  • 在相同情感表达中共现的词之间的关系
  • 词和标注的情感表达之间的关系
    本文方法的同之前的用于情感分析的迁移学习不同之处在于,他们采用了从目标域中筛选具有信息的样例的方法,而不是随机采样。

Active Learning

当一个任务拥有大量的未标注数据,并且这些数据的标签的获取有困难或者代价很大的时候,active learning就可以派上用场。通过主动地挑选有信息量的样例进行标注,active learning可以有效地减少标注的工作量,同时在有限的预算下提升分类的性能。这里就有一个很重要的问题:如何衡量未标注样例的信息量。本文采用了uncertainty combined with density。和现有的方法的区别在于,他们的方法的初始的情感分类器的构建是基于adapting the general sentiment information to target domain via the domain-specific sentiment similarities among words,而现有的方法则是将情感分类器的参数用0初始化,或者从随机选择的样例中学习得到。

看到这里,我想既然又一个source domain的分类器,那么是不是可以用理论分布和标准分布的差值来衡量信息量。但是问题在于可能拿不到标准分布。

现有的方法通常是在source domain上训练一个情感分类器,然后将这个情感分类器迁移到target domain上。而本文的方法则是迁移sentiment lexicon中的信息到目标域上。本文的方法可以从未标注的样例中挖掘出词的情感相似度,这是已有方法没有考虑的方法。

Active Sentiment Domain Adaption

Notations

  • general sentiment information: $\boldsymbol{p} \in \mathbb{R}^{D \times 1}$,每一维取1、0或-1,表示词在情感字典中的情感极性。
  • 线性分类器:$\boldsymbol{w} \in \mathbb{R}^{D \times 1}$
  • 损失函数:$f(\boldsymbol{x}_i, y_i, \boldsymbol{w})$
  • sentiment similarities among words:$\boldsymbol{S} \in \mathbb{R}^{D \times D}$,这个是从目标域的未标注样例中抽取出来的。

Domain-Specific Sentiment Similarities

抽取两种相似度:

  1. 基于syntactic rules,如果两个词有相同的POS标签,并且使用and相连的,则认为他们表达相同的情感极性,如果是用but相连的则认为是有相反的情感极性。下面的式子用于计算相似度

$S_{i,j}^{r} = \frac{N_{i,j}^{s} - N_{i,j}^{o}}{N_{i,j}^{s} + N_{i,j}^{o} + \alpha_1}$

其中$N_{i,j}^{s}$表示相同情感极性的次数,$N_{i,j}^{o}$表示相反的次数。计算好了之后,将小于0的值置成0。
2. 第二种是根据共现计算相似度,经常共现的词不仅拥有类似的语义,而且还拥有相似的情感。用下面的式子计算:


$S_{i,j}^{c} = \frac{\sum_{d \in D}min{N_d^i, N_d^i}}{\sum_{d \in D}max{N_d^i, N_d^j}+\alpha_2}$

其中$N_d^i$表示词$i$在文档$d$中出现的次数。

第一种的相似度的准去度高,第二种的相似度的覆盖范围大,结合二者


$S_{i,j} = \theta S_{i,j}^{r} + (1 - \theta)S_{i,j}^{c}$

Initial Sentiment Classifier Construction

用下面的式子计算初始的情感分类器


$\boldsymbol{w}_0 = argmin_{w} -\sum_{i=1}^{D} p_i w_i + \alpha \sum_{i=1}^{D} \sum_{j \neq i} S_{i,j} (w_i - w_j)^2$

其中$p_i$是

## Query Strategy
采用的策略叫做classification uncertainty。他的思想是根据$\boldsymbol{w}^T\boldsymbol{x}$的绝对值大小来确定置信度,绝对值越大说明模型越有信心判断这个样例的情感。所以classification uncertainty可以用下面的式子来计算:


$U(x) = 1 - |1-\frac{2}{1+exp(-\boldsymbol{w}^T\boldsymbol{x})}|$

但是当uncertainty很高的时候,可能这个样例是一个异常点,因此他们希望将uncertaintyrepresentativeness结合起来。而density就是用来衡量representativeness。用了基于Zhu et al. (2010)的基于densityk-nearest neighbour方法。可以用下面的式子表示:


$D(x) = \frac{1}{k} \sum_{\boldsymbol{x}_i \in N(\boldsymbol{x})} \frac{\boldsymbol{x}^T\boldsymbol{x}_i}{||\boldsymbol{x}||_2 \cdot ||\boldsymbol{x}_i||_2}$

其中$N(\boldsymbol{x})$表示最近的$k$个邻居。


$I(\boldsymbol{x}) = \eta(t) U(\boldsymbol{x}) + (1 - \eta(t))D(\boldsymbol{x})$

这是最终的信息量表示,其中$\eta(t) = \frac{1}{1+exp(2-\frac{4t}{T})}$,它随着时间$t$的增加而递增,表示的是刚开始比较关注的是representativeness比较高的样例,后期就关注那些uncertainty比较高的样例,符合常识。

## Active Domain Adaptation
整个过程如下:
1. 首先初始化情感分类器,这里利用了相似度
2. 计算样例的density,然后重复下面的步骤直到预算用尽
3. 根据现有的模型计算uncertainty,进而可以选出具有最高信息量的样例,然后对他进行标注,加入到标注数据集中。然后再根据现有的标注数据集进行训练。
运算如下

$$argmin_{\boldsymbol{w}} -\sum_{i=1}^{D}p_iw_i + \alpha \sum_{i=1}^D \sum_{j \neq i}S_{i,j}(w_i - w_j)^2 + \\\\ \beta \sum_{\boldsymbol{x}_i \in L} log(1+exp(-y_i\boldsymbol{w}^T\boldsymbol{x}_i))+\lambda ||\boldsymbol{w}||_2^2$$

Experiments

实验结果表明这个方法很有效,尽管使用线性分类器,但是也超过了SVM。

分享到